package de.haw.ai3.bs.aufgabe3.a1;

import java.util.Random;

public class Student extends Thread {

	private int studentNummer;
	private Random rand = new Random();
	private Kasse[] kassenListe;
	private KassenWrapper kw;

	public Student(int studentNummer, KassenWrapper kW) {
		this.studentNummer = studentNummer;
		this.kw = kW;
	}

	public Student(int studentNummer, Kasse[] kassen) {
		this.studentNummer = studentNummer;
		this.kassenListe = kassen;
	}

	@Override
	public void run() {
		while (!isInterrupted()) {
			// Kasse kasse = null;
			//
			// for (Kasse kasseAkt : kassenListe) {
			// if (kasse == null) {
			// kasse = kasseAkt;
			// } else {
			// if (kasseAkt.size() < kasse.size()) {
			// kasse = kasseAkt;
			// }
			// }
			// }
			// kasse.bezahlen(this);
			Kasse kasse = kw.getSmallestQueue();
			
//			kasse.incrementZaehler();
			
			System.out.println(kw.getKassenInfo());
			kasse.bezahlen(this);
			kw.decrementZaehler(kasse);
			
			try {
				System.err.println("Student-Nr.: " + this.studentNummer
						+ " isst jetzt!");
				sleep(rand.nextInt(300)); // ESSEN!
			} catch (InterruptedException e) {
				this.interrupt();
			}

			try {
				System.err.println("Student-Nr.: " + this.studentNummer
						+ " ruht sich gerade aus!");
				sleep(rand.nextInt(600)); // Verdauen!
			} catch (InterruptedException e) {
				this.interrupt();
			}
		}
	}

	public int getStudentNummer() {
		return studentNummer;
	}
}
